package models

import (
	"driver_srv/basic/config"
	"gorm.io/gorm"
	"time"
)

// 用户乘车表
type RideRecord struct {
	Id         int64          `gorm:"column:id;type:bigint;comment:用户乘车;primaryKey;not null;" json:"id"` // 用户乘车ID
	UserId     int64          `gorm:"column:user_id;type:bigint;comment:用户ID;not null;" json:"user_id"`  // 用户ID
	RouteId    int64          `gorm:"column:route_id;type:bigint;comment:线路ID;not null;" json:"route_id"`
	SiteId     int64          `gorm:"column:site_id;type:bigint;comment:站点ID;not null;" json:"site_id"`                                   // 站点ID
	StartPoint string         `gorm:"column:start_point;type:varchar(20);comment:起点;not null;" json:"start_point"`                        // 线路起点
	EndPoint   string         `gorm:"column:end_point;type:varchar(20);comment:终点;not null;" json:"end_point"`                            // 线路终点
	Status     int64          `gorm:"column:status;type:tinyint;not null;default:0;comment:'状态(0:待乘车 1:已乘车 2:已完成 3:已取消)'" json:"status"`  // 状态(0:待乘车 1:已乘车 2:已完成 3:已取消)
	CreatedAt  time.Time      `gorm:"column:created_at;type:datetime;comment:创建时间;not null;default:CURRENT_TIMESTAMP;" json:"created_at"` // 创建时间
	UpdatedAt  time.Time      `gorm:"column:updated_at;type:datetime;comment:更新时间;not null;default:CURRENT_TIMESTAMP;" json:"updated_at"` // 更新时间
	DeleteTime gorm.DeletedAt `gorm:"column:delete_time;type:datetime;comment:删除时间（软删除标记）;default:NULL;" json:"delete_time"`
}

func (r *RideRecord) TableName() string {
	return "ride_record"
}

// 创建用户乘车
func (r *RideRecord) CreateRideRecord() error {
	return config.DB.Create(&r).Error
}
